# console
#
# Copyright (C) 2010 Tactical Network Solutions
# Author: Benjamin Bengfort <bbengfort@tacnetsol.com>
# URL: <http://tacnetsol.com>
#
# $Id: __init__.py 2 2010-11-29 13:48:00 -0400 bbengfort $

"""
Overview
========
The console framework allows for the rapid development of interactive console
based applications in Python in the style of the Python shell. Software
developers often want to create lightweight programs using the terminal or the
shell to control minor or partial functionality in a large application. Instead
of writing a completly scritped executable .py file, the console framework
allows for the rapid integration of specific commands into a customizable
interactive shell.

At its most basic, the framework allows you to create L{InteractiveCommand}s to
be added to an L{InteractiveShell}. These commands have name, description, and
help text associated with them, and allow you to add specific functionality,
which returns output via stdout. L{InteractiveShell} allows you to customize a
banner and a prompt, and can be easily created and instantiated with commands in
a C{__main__} method.

Tutorial
========
See L{interactive} for specifics about extending L{InteractiveCommand} and
instantiating and running L{InteractiveShell}. See L{example} for a working
example of a console program. 
   
Package Organization
====================
The console source code contains the following subpackages and modules:

G{packagetree}

L{interactive} is the entry point to the console framework. This module allows
you to create L{InteractiveCommand}s and an L{CustomCompleter} to be added to
an L{InteractiveShell}.

L{example} contains a sample program for reference.

@author: U{Peter Eacmen<mailto:peacmen@tacnetsol.com>}
@organization: Tactical Network Solutions
@license: Open Source MIT License
@copyright: S{copy} 2010 Tactical Network Solutions

@requires: Python 2.6

@version: 1.0
@change: I{__init__.py 2 2010-11-29 13:48:00 -0400 bbengfort}
@since: 2010-11-29 17:20:39 -0400

@see: U{The Tactical Network Solutions homepage<http://tacnetsol.com>}
@see: U{Google Code Project<http://code.google.com/p/console/>}
@see: U{The console Wiki<http://code.google.com/p/console/wiki/console>}

@todo: Create console Wiki page
@todo: Create consoel Google Code Project
@todo: Create documentation config file
@todo: Create examples
@todo: Create console-program examples
@todo: Create customized icon
@todo: Re-add colorization
@todo: Add ASCII tables

@var __version__: The version of console - major.minor revision numbering
@type __version__: C{str}
@var __authors__: The primary authors of console
@type __authors__: C{list}
@var __url__: The URL for the console homepage, hosted on Google Code
@type __url__: C{str}
@var __license__: The license governing the use and distribution of console
@type __license__: C{str}
"""

__docformat__ = 'epytext en'

__version__ = "1.0"

__authors__ = ["Peter Eacmen <peacmen@tacnetsol.com",]

__url__ = 'http://code.google.com/p/console/'

__license__ = "Open Source MIT"